/*
 * Parser.h
 *
 *  Created on: 17/09/2012
 *      Author: emma
 */

#ifndef PARSER_H_
#define PARSER_H_
#include <string>
#include <fstream>
#include <list>
#include <iostream>
#include <cstring>
#include <map>
#include <sstream>
#include "RegistroTermino.h"
#include "InfoMerge.h"

using namespace std;

class Parser{
	int idDocumento;
	int offsetAlPath;
	string raiz;
	list<InfoMerge>* listaDeInfoMerge;
	int guardarPath(string path);
	list<string>* tokenizar(string path);
	void quitarAcentosYDieresis(string &token);
	void pasarAMinuscula(string &token);
	void quitarSignosDePuntuacion(string &token);
	list<RegistroTermino>* generarTerminosYFrecuencias(list<string>* tokens);
	int generarAuxiliar(list<RegistroTermino>* terminos);
	string convertirIntAString(int entero);
	void pasarStringATamanioFijo(string &cadena, int tamanioFijo);
	void rellenarConCeros(string &cadena);
	void guardarInfoMerge(list<RegistroTermino>* terminos);

public:

	Parser(string root);

	void parsear(string path);

	list<InfoMerge>* obtenerInfoMerge();

	virtual ~Parser();
};



#endif /* PARSER_H_ */
